<<<<<<< HEAD
/**
  ******************************************************************************
  * @file    font.h
  * @author  FZetc飞贼(方惠清)
  * @version V0.0.1
  * @date    2024.7
  * @brief   字处理相关函数、bmp数据处理
  *            
  ******************************************************************************
  * @attention
  *
  *	 推广：
  *  	合作交流建议：FZetcSnitch@163.com
  *		网站建设推广：www.FZetc.com
  *  	微信公众号：  FZetc飞贼 
  *
  ******************************************************************************
  */

#ifndef __FONT_H
#define __FONT_H

// (1)、头文件
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <errno.h> 		
#include <string.h>
#include <sys/mman.h>
#include <linux/input.h>
#include <stdlib.h>
#include <termios.h>
#include <sys/ioctl.h>
#include <pthread.h>
#include "font_truetype.h"
#include "my_config.h"

// (2)、宏定义(函数、变量、常量)
// 1、字体处理相关宏定义
#define wchar s32
#define wchar_to_str(wc) ((char *)(wc))
#define color u32

#define getColor(a, b, c, d) (a|b<<8|c<<16|d<<24)
#define getA(c) ((c>> 0)&0x000000ff)
#define getR(c) ((c>> 8)&0x000000ff)
#define getG(c) ((c>>16)&0x000000ff)
#define getB(c) ((c>>24)&0x000000ff)


// (3)、数据类型(结构体、联合体、枚举)
// 1、字体处理结构体(自己写的)
typedef struct
{
	stbtt_fontinfo *info;
	u8 *buffer;
	float scale;
}font;

// 2、画板(点阵图)结构体(自己写的)
typedef struct
{
	u32 height;
	u32 width;
	u32 byteperpixel;
	u8 *map;
}bitmap;

// (4)、全局变量声明

// (5)、函数声明
extern font *fontLoad(char *fontPath);
extern void fontSetSize(font *f, s32 pixels);
extern bitmap *createBitmap(u32 width, u32 height, u32 byteperpixel);
extern void setPixel(bitmap *bm, u32 x, u32 y, color c);
extern bitmap *createBitmapWithInit(u32 width, u32 height, u32 byteperpixel, color c);
extern void fontPrint(font *f, bitmap *screen, s32 x, s32 y, char *text, color c, s32 maxWidth);
extern void fontUnload(font *f);
extern void destroyBitmap(bitmap *bm);
extern color getPixel(bitmap *bm, u32 x, u32 y);
extern u32 wstrlen(wchar *ws);
extern wchar *utf8_to_ucs2(char *code);
extern bitmap *createBitmapWithInit_bmp(char *bmppath);

// (6)、全局变量定义、静态函数定义

#endif /* __FONT_H */
=======
/**
  ******************************************************************************
  * @file    font.h
  * @author  FZetc飞贼(方惠清)
  * @version V0.0.1
  * @date    2024.7
  * @brief   字处理相关函数、bmp数据处理
  *            
  ******************************************************************************
  * @attention
  *
  *	 推广：
  *  	合作交流建议：FZetcSnitch@163.com
  *		网站建设推广：www.FZetc.com
  *  	微信公众号：  FZetc飞贼 
  *
  ******************************************************************************
  */

#ifndef __FONT_H
#define __FONT_H

// (1)、头文件
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <errno.h> 		
#include <string.h>
#include <sys/mman.h>
#include <linux/input.h>
#include <stdlib.h>
#include <termios.h>
#include <sys/ioctl.h>
#include <pthread.h>
#include "font_truetype.h"
#include "my_config.h"

// (2)、宏定义(函数、变量、常量)
// 1、字体处理相关宏定义
#define wchar s32
#define wchar_to_str(wc) ((char *)(wc))
#define color u32

#define getColor(a, b, c, d) (a|b<<8|c<<16|d<<24)
#define getA(c) ((c>> 0)&0x000000ff)
#define getR(c) ((c>> 8)&0x000000ff)
#define getG(c) ((c>>16)&0x000000ff)
#define getB(c) ((c>>24)&0x000000ff)


// (3)、数据类型(结构体、联合体、枚举)
// 1、字体处理结构体(自己写的)
typedef struct
{
	stbtt_fontinfo *info;
	u8 *buffer;
	float scale;
}font;

// 2、画板(点阵图)结构体(自己写的)
typedef struct
{
	u32 height;
	u32 width;
	u32 byteperpixel;
	u8 *map;
}bitmap;

// (4)、全局变量声明

// (5)、函数声明
extern font *fontLoad(char *fontPath);
extern void fontSetSize(font *f, s32 pixels);
extern bitmap *createBitmap(u32 width, u32 height, u32 byteperpixel);
extern void setPixel(bitmap *bm, u32 x, u32 y, color c);
extern bitmap *createBitmapWithInit(u32 width, u32 height, u32 byteperpixel, color c);
extern void fontPrint(font *f, bitmap *screen, s32 x, s32 y, char *text, color c, s32 maxWidth);
extern void fontUnload(font *f);
extern void destroyBitmap(bitmap *bm);
extern color getPixel(bitmap *bm, u32 x, u32 y);
extern u32 wstrlen(wchar *ws);
extern wchar *utf8_to_ucs2(char *code);
extern bitmap *createBitmapWithInit_bmp(char *bmppath);

// (6)、全局变量定义、静态函数定义

#endif /* __FONT_H */
>>>>>>> gec
